{
 "cells": [
  {
   "cell_type": "code",
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2025-04-10T12:44:07.620235Z",
     "start_time": "2025-04-10T12:44:07.412198Z"
    }
   },
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.datasets import fetch_openml\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.metrics import accuracy_score, classification_report, ConfusionMatrixDisplay\n"
   ],
   "outputs": [],
   "execution_count": 1
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-10T12:46:20.542082Z",
     "start_time": "2025-04-10T12:46:16.984478Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 1. 加载 MNIST 数据集\n",
    "mnist = fetch_openml('mnist_784', version=1, as_frame=False, parser='auto')\n",
    "X, y = mnist.data, mnist.target.astype(np.uint8)  # (70000, 784), 目标值转整数"
   ],
   "id": "506f8b3c6ed1ecde",
   "outputs": [],
   "execution_count": 2
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-10T12:46:29.700322Z",
     "start_time": "2025-04-10T12:46:28.967663Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 2. 数据预处理（归一化 & 训练集划分）\n",
    "X = X.astype(np.float32) / 255.0  # 先转换为 float32，再归一化  # 归一化到 [0,1]\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
   ],
   "id": "963c8787b684d92c",
   "outputs": [],
   "execution_count": 3
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-10T12:48:40.217043Z",
     "start_time": "2025-04-10T12:46:42.022924Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 3. 训练 SVM 模型（RBF 核）\n",
    "svm_model = SVC(kernel='rbf', C=10, gamma=0.01)  # 选择适合的 C 和 gamma\n",
    "# from sklearn.svm import LinearSVC\n",
    "# svm_model = LinearSVC(C=1.0, max_iter=1000, dual=False)  # dual=False 适用于大数据\n",
    "svm_model.fit(X_train, y_train)"
   ],
   "id": "768dbb2af84222f1",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVC(C=10, gamma=0.01)"
      ],
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: start;\n",
       "  justify-content: space-between;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(C=10, gamma=0.01)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>SVC</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.svm.SVC.html\">?<span>Documentation for SVC</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>SVC(C=10, gamma=0.01)</pre></div> </div></div></div></div>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 4
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-10T12:49:56.608581Z",
     "start_time": "2025-04-10T12:48:46.053641Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 4. 预测\n",
    "y_pred = svm_model.predict(X_test)"
   ],
   "id": "543c4138915b1af4",
   "outputs": [],
   "execution_count": 5
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-10T12:50:03.133431Z",
     "start_time": "2025-04-10T12:50:03.127239Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 5. 计算准确率\n",
    "accuracy = accuracy_score(y_test, y_pred)\n",
    "print(f\"测试集准确率: {accuracy:.4f}\")"
   ],
   "id": "d35742cf035e7468",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试集准确率: 0.9810\n"
     ]
    }
   ],
   "execution_count": 6
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-10T12:50:16.617492Z",
     "start_time": "2025-04-10T12:50:16.599697Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 6. 分类报告\n",
    "print(\"\\n分类报告:\")\n",
    "print(classification_report(y_test, y_pred))"
   ],
   "id": "952866162a79a097",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "分类报告:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.99      0.99      0.99      1343\n",
      "           1       0.99      0.99      0.99      1600\n",
      "           2       0.97      0.98      0.98      1380\n",
      "           3       0.98      0.97      0.98      1433\n",
      "           4       0.98      0.98      0.98      1295\n",
      "           5       0.98      0.98      0.98      1273\n",
      "           6       0.99      0.99      0.99      1396\n",
      "           7       0.98      0.98      0.98      1503\n",
      "           8       0.98      0.97      0.97      1357\n",
      "           9       0.98      0.97      0.97      1420\n",
      "\n",
      "    accuracy                           0.98     14000\n",
      "   macro avg       0.98      0.98      0.98     14000\n",
      "weighted avg       0.98      0.98      0.98     14000\n",
      "\n"
     ]
    }
   ],
   "execution_count": 7
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-10T12:50:29.714069Z",
     "start_time": "2025-04-10T12:50:29.491359Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 7. 可视化部分预测错误的图片\n",
    "misclassified = np.where(y_pred != y_test)[0]  # 获取错误分类的索引\n",
    "fig, axes = plt.subplots(2, 5, figsize=(10, 5))\n",
    "for i, ax in enumerate(axes.flat):\n",
    "    idx = misclassified[i]\n",
    "    ax.imshow(X_test[idx].reshape(28, 28), cmap='gray')\n",
    "    ax.set_title(f\"Pred: {y_pred[idx]}\\nTrue: {y_test[idx]}\")\n",
    "    ax.axis(\"off\")\n",
    "plt.show()"
   ],
   "id": "3f5aca3752398588",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1000x500 with 10 Axes>"
      ],
      "image/png": "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Ufzwww9abMOGDVrs66+/1mJVq1a1bVesWFHbZ+7cua7PFwinaGl0RGhKly6txWbMmBHSsT788EMtlidPHi1Wt25d2/bLL78c0vvBW44dO6bFRo4cqcX2799v9DxefPFF23bt2rWj9rrJyAYAAAAAIyg2AAAAABhBsQEAAADACIoNAAAAAEbQIO5Rbdq00WKjRo3SYps3b9ZiZcuW1WKHDx9OwrPzh8Cmbqcmb7c++eQTLValShXbdrNmzbR9aBBHJIqNjdViPXr0CMu5wBvN4CtWrNBiWbJkCXqswYMHa7GNGzdqsU8//fS6zhH+9ccff2ix77//Pizngv/DyAYAAAAAIyg2AAAAABhBsQEAAADACIoNAAAAAEbQIO7RhnCnZvBVq1ZpsVatWmkxmsGTX4UKFYLuc/bsWRUNUqdOrcWuXLli27506VIynhGuJV26dFrshRde0GJVq1bVYtOmTTN2XogMZcqU0WKff/65q2bwf/75x7bdsmVLbZ8LFy5osZkzZ2qxNGnSaLFz587Ztk+fPq3tA+9wyqH06dNrsZMnT4Z0/BQpUmixcuXKabHq1atrMafVwQPly5dPRStGNgAAAAAYQbEBAAAAwAiKDQAAAABGUGwAAAAAiL4G8dy5c9u269ev72o17D///FOLLViwQIv99ddfKtycmtpeffVVLdapU6egq7E2b95ci/333383fI64PiVLltRijRo1Cvq6yZMnq2hQuXJlLZYypf1StGzZsmQ8o+hVrFgx23aNGjW0fR5++GEtVq9ePS22a9cuV6s/w1/N4PPmzQu5EfaTTz6xbS9dulTbp2HDhlose/bsro6/Zs0a2/aXX37p6nWITOPHj9dixYsXd7VaeN68ebVY69atbdvly5fX9nnooYe0WExMjBaLi4tTodixY0dEfjZNaoxsAAAAADCCYgMAAACAERQbAAAAAKKvZ2P16tW27cKFC4d8rD59+mixfv362bY/+OADZVKqVKlcLXr12GOPabG3337btt2rVy9tn8uXL9/wOeLGOT33niFDhqDPOm/YsEFFq8Bnt3PkyBG2c4kmgX1e/fv3D/n55MC+sqv1z8E7Xn/9ddt2+/btXV3bnDj17wwZMiTo64YPH65C1bVr15Bfi8izZcsWV/2QBQsWDNq/cyOL7DktGui0uKDTtTNQoUKFgn42dYodOnRIeQkj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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 8
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-10T12:51:54.975144Z",
     "start_time": "2025-04-10T12:50:44.350944Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 8. 绘制混淆矩阵\n",
    "ConfusionMatrixDisplay.from_estimator(svm_model, X_test, y_test, cmap=\"Blues\")\n",
    "plt.show()"
   ],
   "id": "a357f34dc6721a72",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 9
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
